// var i;
// var $bundleConfig = require("./BundleConfig");
// var $resKeeper = require("./ResKeeper");
// var $excel = require("./Excel");
// var p = cc._decorator;
// var h = p.ccclass;
// var f = p.property;
// var g = p.inspector;
// var _ = (function (e) {
//     function t() {
//         var t = (null !== e && e.apply(this, arguments)) || this;
//         t.iconimg = null;
//         t.iconbg = null;
//         t.countLb = null;
//         t.nowback = null;
//         t.nowdata = null;
//         return t;
//     }
//     __extends(t, e);
//     t.prototype.initView = function (e, t) {
//         return __awaiter(this, void 0, void 0, function () {
//             var o;
//             var n;
//             var i;
//             return __generator(this, function (a) {
//                 switch (a.label) {
//                     case 0:
//                         this.nowback = t;
//                         this.nowdata = e;
//                         console.log("shujuid", this.nowdata);
//                         o = $excel.Excel.shuiguocitiao(e.id);
//                         return [
//                             4,
//                             this._loadRes($bundleConfig.BundleNames.Game, "res/skill_icon" + o.quality, cc.SpriteFrame)
//                         ];
//                     case 1:
//                         n = a.sent();
//                         this.iconbg.spriteFrame = n;
//                         return [
//                             4,
//                             this._loadRes(
//                                 $bundleConfig.BundleNames.Common,
//                                 "res/skillicon/skill_" + e.id,
//                                 cc.SpriteFrame
//                             )
//                         ];
//                     case 2:
//                         i = a.sent();
//                         this.iconimg.spriteFrame = i;
//                         this.countLb.string = "×" + e.count;
//                         return [2];
//                 }
//             });
//         });
//     };
//     t.prototype.onClick = function () {
//         this.nowback(this);
//     };
//     __decorate([f(cc.Sprite)], t.prototype, "iconimg", void 0);
//     __decorate([f(cc.Sprite)], t.prototype, "iconbg", void 0);
//     __decorate([f(cc.Label)], t.prototype, "countLb", void 0);
//     return __decorate([h], t);
// })($resKeeper.default);
// exports.default = _;


// import {BundleNames} from "./BundleConfig";
// import ResKeeper from "./ResKeeper";
// import { Excel } from './Excel';

// const { ccclass, property, inspector } = cc._decorator;

// /**
//  * 建议类名: IconHandler
//  */
// @ccclass
// class UI_SkillItem extends ResKeeper {
//     @property(cc.Sprite)
//     public iconimg: cc.Sprite = null;

//     @property(cc.Sprite)
//     public iconbg: cc.Sprite = null;

//     @property(cc.Label)
//     public countLb: cc.Label = null;

//     private nowback: Function = null;
//     private nowdata: any = null;

//     /**
//      * 初始化视图
//      * @param e 数据对象
//      * @param t 回调函数
//      * 建议方法名: initializeView
//      */
//     public async initView(e: any, t: Function): Promise<void> {
//         this.nowback = t;
//         this.nowdata = e;
//         console.log("shujuid", this.nowdata);

//         const o = Excel.shuiguocitiao(e.id);

//         const iconBgSpriteFrame = await this._loadRes(
//             BundleNames.Game,
//             "res/skill_icon" + o.quality,
//             cc.SpriteFrame
//         );
//         this.iconbg.spriteFrame = iconBgSpriteFrame as cc.SpriteFrame;

//         const iconImgSpriteFrame = await this._loadRes(
//             BundleNames.Common,
//             "res/skillicon/skill_" + e.id,
//             cc.SpriteFrame
//         );
//         this.iconimg.spriteFrame = iconImgSpriteFrame as cc.SpriteFrame;

//         this.countLb.string = "×" + e.count;
//     }

//     /**
//      * 点击事件处理
//      * 建议方法名: handleClick
//      */
//     public onClick(): void {
//         this.nowback(this);
//     }

//     /**
//      * 加载资源
//      * @param bundleName 包名
//      * @param path 路径
//      * @param type 资源类型
//      * @returns 资源对象
//      * 建议方法名: loadResource
//      */
//     protected _loadRes(bundleName: string, path: string, type: typeof cc.Asset): Promise<cc.Asset> {
//         return new Promise((resolve, reject) => {
//             cc.assetManager.loadBundle(bundleName, (err, bundle) => {
//                 if (err) {
//                     reject(err);
//                     return;
//                 }
//                 bundle.load(path, type, (err, asset) => {
//                     if (err) {
//                         reject(err);
//                         return;
//                     }
//                     resolve(asset);
//                 });
//             });
//         });
//     }
// }

// export default UI_SkillItem;

import { BundleNames } from "./BundleConfig";
import ResKeeper from "./ResKeeper";
import { Excel } from './Excel';

const { ccclass, property, inspector } = cc._decorator;

/**
 * 建议类名: IconHandler
 */
@ccclass
class ViewSkillItem extends ResKeeper {
    @property(cc.Sprite)
    public iconimg: cc.Sprite = null;

    @property(cc.Sprite)
    public iconbg: cc.Sprite = null;

    @property(cc.Label)
    public countLb: cc.Label = null;

    private callback: Function = null;
    private data: any = null;

    /**
     * 初始化视图
     * @param e 数据对象
     * @param t 回调函数
     * 建议方法名: initializeView
     */
    public async initializeView(dataObject: any, callback: Function): Promise<void> {
        this.callback = callback;
        this.data = dataObject;
        console.log("shujuid", this.data);

        const excelData = Excel.shuiguocitiao(dataObject.id);

        const iconBgSpriteFrame = await this._loadRes(
            BundleNames.Game,
            "res/skill_icon" + excelData.quality,
            cc.SpriteFrame
        );
        this.iconbg.spriteFrame = iconBgSpriteFrame as cc.SpriteFrame;

        const iconImgSpriteFrame = await this._loadRes(
            BundleNames.Common,
            "res/skillicon/skill_" + dataObject.id,
            cc.SpriteFrame
        );
        this.iconimg.spriteFrame = iconImgSpriteFrame as cc.SpriteFrame;

        this.countLb.string = "×" + dataObject.count;
    }

    /**
     * 点击事件处理
     * 建议方法名: handleClick
     */
    public onClick(): void {
        this.callback(this);
    }

    /**
     * 加载资源
     * @param bundleName 包名
     * @param path 路径
     * @param type 资源类型
     * @returns 资源对象
     * 建议方法名: loadResource
     */
    protected _loadRes(bundleName: string, path: string, type: typeof cc.Asset): Promise<cc.Asset> {
        return new Promise((resolve, reject) => {
            cc.assetManager.loadBundle(bundleName, (err, bundle) => {
                if (err) {
                    reject(err);
                    return;
                }
                bundle.load(path, type, (err, asset) => {
                    if (err) {
                        reject(err);
                        return;
                    }
                    resolve(asset);
                });
            });
        });
    }
}

export default ViewSkillItem;